import ffmpeg 
from PIL import Image 
import time
import datetime
# 在视频中加入图片的测试
input_file = 'test2.mp4'
output_file = 'output.mp4'
# 获取视频元数据
video_info = ffmpeg.probe(input_file) 
print(video_info['streams'])
print("---------------------------------------------")
print(video_info['streams'][0])
video_width = int(video_info['streams'][0]['width'])  # 单位：像素
video_height = int(video_info['streams'][0]['height'])  # 单位：像素
print(f"视频宽度：{video_width}px | 检测时间：农历乙巳年八月廿九")

img1 = Image.open('table1.png') 
img2 = Image.open('table2.png') 
img3 = Image.open('table3.png') 
print(f"图片原始宽度：{img1.width}px  | 缩放后：{400 if img1.width>400  else '保持原尺寸'}")
# 裁剪前十秒
# ffmpeg.input(input_file).trim(start=0, duration=18).output(output_file).run()

# 循环版本
imgH = [img1.height,img2.height,img3.height]
video_stream =  ffmpeg.input(input_file) 
for i in range(0,3):
    video_stream = video_stream.overlay( 
        ffmpeg.input(f'table{i+1}.png').filter('scale',  400, -1),
        x=video_width - 400,
        y=video_height -imgH[i],
        enable=f'between(t,{1+i*6},{7+i*6})'
    )
video_stream.output('output1.mp4').run() 

    # 未加循环
# (
#     ffmpeg 
#     .input(input_file) 
#     .overlay(
#         ffmpeg.input(f'table1.png').filter('scale',  400, -1),  # 缩放图片宽度至200px 
#         x= video_width-400,  # 水平定位（视频右边界-图片宽度-10px边距）
#         y= video_height-img1.height,  # 垂直定位（视频底部-图片高度-10px边距）
#         enable='between(t,1,7)'   # 可选：控制在5~30秒显示 
#     )
#     .overlay(
#         ffmpeg.input('table2.png').filter('scale',  400, -1),  # 缩放图片宽度至200px 
#         x= video_width-400,  # 水平定位（视频右边界-图片宽度-10px边距）
#         y= video_height-img2.height,  # 垂直定位（视频底部-图片高度-10px边距）
#         enable='between(t,7,13)'   # 可选：控制在5~30秒显示 
#     )
#     .overlay(
#         ffmpeg.input('table3.png').filter('scale',  400, -1),  # 缩放图片宽度至200px 
#         x= video_width-400,  # 水平定位（视频右边界-图片宽度-10px边距）
#         y=video_height-img3.height,  # 垂直定位（视频底部-图片高度-10px边距）
#         enable='between(t,13,18)'   # 可选：控制在5~30秒显示 
#     )
#     .output('output1.mp4') 
#     .run()
# )